﻿using System;
using System.Windows.Forms;
using FBWMS.Properties;

namespace FBWMS
{
    public partial class F_COM_Certification : Form
    {
        ////////////////////////////////////////////////////////////////////////////
        //
        //初期処理
        //
        ////////////////////////////////////////////////////////////////////////////
        public F_COM_Certification()
        {
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, Resources.F_COM_Certification, "F_COM_Certification");

                //初期処理
                InitializeComponent();

                //ToolTipの設定
                G_CommonDefine.G_tt_ToolTip.RemoveAll();
                G_CommonDefine.G_tt_ToolTip.SetToolTip(this.btn_Certification, "F5");                
                G_CommonDefine.G_tt_ToolTip.SetToolTip(this.btn_Clear, "F11");

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, Resources.FCOMCertification初期処理終了, "F_COM_Certification");
            }
            catch (Exception err)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, Resources.FCOMCertification初期処理エラー + err.Message, "F_COM_Certification");

                //エラーメッセージ表示
                MessageBox.Show(Resources.FCOMCertification初期処理エラー + err.Message, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        #region イベントハンドラ ***********************************************************
        
        ////////////////////////////////////////////////////////////////////////////
        //
        //認証ボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Certification_Click(object sender, EventArgs e)
        {
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, Resources.Btn_Certification_Click, "btn_Certification_Click");

                //認証処理
                if (!P_Certification())
                {
                    return;
                }

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, Resources.BtnCertificationClick処理終了, "btn_Certification_Click");

                this.DialogResult = DialogResult.OK;

                this.Close();
            }
            catch (Exception err)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, Resources.BtnCertificationClick処理エラー + err.Message, "btn_Certification_Click");

                //エラーメッセージ表示
                MessageBox.Show(Resources.BtnCertificationClick処理エラー + err.Message, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }        

        ////////////////////////////////////////////////////////////////////////////
        //
        //クリアボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Clear_Click(object sender, EventArgs e)
        {
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, Resources.Btn_Clear_Click, "btn_Clear_Click");

                //クリア処理
                this.P_Clear();

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, Resources.BtnClearClick処理終了, "btn_Clear_Click");
            }
            catch (Exception err)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, Resources.BtnClearClick処理エラー + err.Message, "btn_Clear_Click");

                //エラーメッセージ表示
                MessageBox.Show(Resources.BtnClearClick処理エラー + err.Message, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        ////////////////////////////////////////////////////////////////////////////
        //
        //Passwordボタンクリック時処理
        //
        ////////////////////////////////////////////////////////////////////////////
        private void btn_Password_Click(object sender, EventArgs e)
        {
            try
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcStart, Resources.Btn_Password_Click, "btn_Password_Click");

                G_CommonDefine.G_str_Search_CD = this.txt_Password.Text;

                Form F_COM_TenKey = new F_COM_TenKey(true);

                F_COM_TenKey.ShowDialog();

                this.txt_Password.Text = G_CommonDefine.G_str_Search_CD;

                this.txt_Password.Focus();

                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.ProcEnd, Resources.BtnPasswordClick処理終了, "btn_Password_Click");
            }
            catch (Exception err)
            {
                //ログ書込み
                G_CommonClassSystem.G_System_SetLog(G_CommonDefine.LogMode.Error, Resources.BtnPasswordClick処理エラー + err.Message, "btn_Password_Click");

                //エラーメッセージ表示
                MessageBox.Show(Resources.BtnPasswordClick処理エラー + err.Message, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }        

        #endregion *************************************************************************

        #region プライベート関数 ***********************************************************

        /// <summary>
        /// 認証処理
        /// </summary>
        private bool P_Certification()
        {
            if (!this.txt_Password.Text.Equals(G_CommonDefine.G_EncryptPass))
            {
                MessageBox.Show(Resources.認証コートか違います, Resources.エラー, MessageBoxButtons.OK, MessageBoxIcon.Error);

                this.txt_Password.Focus();

                return false;
            }

            return true;
        }

        /// <summary>
        /// クリア処理
        /// </summary>
        private void P_Clear()
        {
            this.txt_Password.Text = string.Empty;

            this.txt_Password.Focus();
        }

        #endregion *************************************************************************

        #region フォーム共通処理 ***********************************************************

        ////////////////////////////////////////////////////////////////////////////
        //
        //ショートカットキー処理
        //
        ////////////////////////////////////////////////////////////////////////////
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (this.cc_ShortcutKeyHelper1.PerformClickByKeys(keyData))
            {
                return true;
            }

            return base.ProcessCmdKey(ref msg, keyData);
        }

        ////////////////////////////////////////////////////////////////////////////
        //フォームKeyDown時処理
        //(エンターを押した際に次のコントロールに移動する。)
        //(フォームの『KeyPreview』を『true』にすること)
        ////////////////////////////////////////////////////////////////////////////
        private void F_COM_Certification_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (!e.Control)
                {
                    this.SelectNextControl(this.ActiveControl, !e.Shift, true, true, true);
                }
            }
        }

        #endregion *************************************************************************
    }
}